#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
namespace Cephei.QL
{
     // <summary> 
	// ! An American option can be exercised at any time between two predefined dates; the first date might be omitted, in which case the option can be exercised at any time before the expiry.  \todo check that everywhere the American condition is applied from earliestDate and not earlier
	// </summary>
    [Guid ("62F62A14-3CAD-44ed-8078-E4F14D06BD5B"),ComVisible(true)]
	public interface IAmericanExercise : Cephei.QL.IEarlyExercise
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
    }

    // <summary> 
	// ! An American option can be exercised at any time between two predefined dates; the first date might be omitted, in which case the option can be exercised at any time before the expiry.  \todo check that everywhere the American condition is applied from earliestDate and not earlier Factory
	// </summary>
   	[ComVisible(true)]
    public interface IAmericanExercise_Factory // : Collection_Factory<IAmericanExercise, ICell<IAmericanExercise>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IAmericanExercise Create (DateTime latestDate, Microsoft.FSharp.Core.FSharpOption<Boolean> payoffAtExpiry);
        
	    IAmericanExercise Create (DateTime earliestDate, DateTime latestDate, Microsoft.FSharp.Core.FSharpOption<Boolean> payoffAtExpiry);
    }
}

